#define  _CRT_SECURE_NO_WARNINGS


#include<stdio.h>

//int Add(int a, int b)
//{
//	return a + b;
//}
//int main()
//{
//	int a = 0;
//	int b = 0;
//	while (scanf("%d %d", &a, &b) == 2)
//	{
//		int ret = Add(a, b);
//		printf("%d\n", ret);
//	}
//
//	return 0;
//}


//int main()
//{
//	printf("**************************\n");
//	printf("Hello World!\n");
//	printf("**************************\n");
//
//
//	return 0;
//}


//int Max(int a, int b, int c)
//{
//	int max = 0;
//	if ((a > b) && (a > c))
//		max = a;
//	else if ((b > a) && (b > c))
//		max = b;
//	else
//		max = c;
//	return max;
//}
//int main()
//{
//	int a = 0;
//	int b = 0;
//	int c = 0;
//	scanf("%d %d %d", &a, &b, &c);
//	int ret = Max(a, b, c);
//	printf("%d\n", ret);
//
//	return 0;
//}

#include<string.h>


//int main()
//{
//	char arr[100] = { 0 };
//	scanf("%s", arr);
//	int i = 0;
//	int len = strlen(arr);
//	for (i = 0; i < len; i++)
//	{
//		if ((arr[i] >= 'a' && arr[i] <= 'z') || (arr[i] >= 'A' && arr[i] <= 'Z'))
//			arr[i] += 4;
//		printf("%c", arr[i]);
//	}
//
//	return 0;
//}


//int Sum(int n)
//{
//	if (n <= 4)
//		return n;
//	else
//		return Sum(n - 1) + Sum(n - 3);
//}
//int main()
//{
//	int n = 0;
//	while (scanf("%d", &n) == 1)
//	{
//		int ret = Sum(n);
//		if (ret != 0)
//			printf("%d\n", ret);
//	}
//
//	return 0;
//}



//int main()
//{
//	double f = 0;
//	scanf("%lf", &f);
//	double c = 5 * (f - 32) / 9;
//	printf("c=%.2lf\n", c);
//
//	return 0;
//}


//int main()
//{
//	int x = 0;
//	int y = 0;
//	scanf("%d", &x);
//	if (x < 1)
//		y = x;
//	else if (x >= 1 && x < 10)
//		y = 2 * x - 1;
//	else if (x >= 10)
//		y = 3 * x - 11;
//	printf("%d\n", y);
//
//	return 0;
//}


//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	if (n >= 90)
//		printf("%c\n", 'A');
//	else if(n >= 80 && n < 90)
//		printf("%c\n", 'B');
//	else if (n >= 70 && n < 80)
//		printf("%c\n", 'C');
//	else if (n >= 60 && n < 70)
//		printf("%c\n", 'D');
//	else
//		printf("%c\n", 'E');
//
//	return 0;
//}



//void reverse(int* left, int* right)
//{
//	while (left < right)
//	{
//		int temp = *left;
//		*left = *right;
//		*right = temp;
//		left++;
//		right--;
//	}
//}
//int main()
//{
//	int n = 0;
//	int digit = 0;
//	scanf("%d", &n);
//	int t = n % 10;
//	int r = (n % 100) / 10;
//	int e = (n % 1000) / 100;
//	int w = (n % 10000) / 1000;
//	int q = n / 10000;
//	int arr[] = { q,w,e,r,t };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	while (n % 10)
//	{
//		digit++;
//		n /= 10;
//	}
//	printf("%d\n", digit);
//	printf("%d %d %d %d %d\n", q, w, e, r, t);
//	reverse(arr, arr + sz - 1);
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d", arr[i]);
//	}
//
//	return 0;
//}



void reverse(char* left, char* right)
{
	while (left < right)
	{
		char temp = *left;
		*left = *right;
		*right = temp;
		left++;
		right--;
	}
}
int main()
{
	char arr[100] = { 0 };
	gets(arr);
	int len = strlen(arr);
	printf("%d\n", len);
	int i = 0;
	for (i = 0; i < len; i++)
	{
		printf("%c ", arr[i]);
	}
	printf("\n");
	reverse(arr, arr + len - 1);
	printf("%s\n", arr);

	return 0;
}